Go to file
keyan 50477c1b65 dockerize dev env 2021-10-20 14:57:11 -05:00
.ebextensions install epel before chromium 2021-07-11 18:51:13 -05:00
.github Update FUNDING.yml 2021-09-15 14:25:30 -05:00
.platform override nginx.conf so we can use gzip 2021-10-06 20:39:51 -07:00
.vscode working comments with cache updates 2021-04-17 13:15:18 -05:00
api finish up invites 2021-10-15 18:07:51 -05:00
components finish up invites 2021-10-15 18:07:51 -05:00
fragments finish up invites 2021-10-15 18:07:51 -05:00
lib share metadata functions 2021-10-07 14:03:54 -07:00
pages finish up invites 2021-10-15 18:07:51 -05:00
prisma dockerize dev env 2021-10-20 14:57:11 -05:00
public change favicon when there are notifications and make notification icon square 2021-07-08 14:52:11 -05:00
styles create invite page 2021-10-15 12:56:54 -05:00
svgs complete tips 2021-09-10 16:13:52 -05:00
walletd fix crashes and report which object failed in walletd 2021-08-12 16:21:56 -05:00
.babelrc collapse 'em 2021-04-30 16:42:51 -05:00
.env.sample dockerize dev env 2021-10-20 14:57:11 -05:00
.gitignore dockerize dev env 2021-10-20 14:57:11 -05:00
.npmrc unsafe perm test 2021-06-04 19:54:03 -04:00
Dockerfile dockerize dev env 2021-10-20 14:57:11 -05:00
LICENSE add license 2021-06-28 18:28:26 -05:00
Procfile remove tls trace from walletd 2021-06-11 13:52:07 -05:00
README.md withdrawl => withdrawal/withdraw 2021-08-19 16:42:21 -05:00
docker-compose.yml dockerize dev env 2021-10-20 14:57:11 -05:00
next.config.js dockerize dev env 2021-10-20 14:57:11 -05:00
package-lock.json dockerize dev env 2021-10-20 14:57:11 -05:00
package.json ssr everything 2021-09-30 10:46:58 -05:00

README.md

stacker.news

Stacker News is a Lightning powered Bitcoin news site modelled after Hacker News (which is modelled after Reddit). The intent is to create a better place to discuss Bitcoin.

stack

The site is written in javascript using Next.js, a React framework. The backend API is provided via graphql. The database is postgresql modelled with prisma. We use lnd for the lightning node which we connect to through a tor http tunnel. A customized Bootstrap theme is used for styling.

processes

There are two. 1. the web app and 2. walletd, which checks and polls lnd for all pending invoice/withdrawal statuses in case the web process dies.

wallet transaction safety

To ensure user balances are kept sane, all wallet updates are run in serializable transactions at the database level. Because prisma has relatively poor support for transactions all wallet touching code is written in plpgsql stored procedures and can be found in the prisma/migrations folder.

code

The code is linted with standardjs.

contributing

Pull requests are welcome. Please submit feature requests and bug reports through issues.

license

MIT