
Show HN: Brick, a free Notion-like tool for zero-hassle site making - neongreen
https://brick.do/
======
leoncvlt
Nice work - seems like more and more people are using Notion to publish their
own little websites. There are a few custom solutions that attempt to fix the
problems that the author outlined, such as custom URLs and styling:

\- [https://super.so/](https://super.so/)

\- [https://fruitionsite.com/](https://fruitionsite.com/)

\- [https://www.notion.so/Hosting-Potion-Fast-custom-domains-
for...](https://www.notion.so/Hosting-Potion-Fast-custom-domains-for-Notion-
without-code-adeaa466687a4459983783f950ca8310)

I also built my own solution which takes a different approach:
[https://github.com/leoncvlt/loconotion](https://github.com/leoncvlt/loconotion)
\- it caches the Notion page as a static site - admittedly you lose the
capability of "syncing" sites instantly but is also makes the site snappier
and more responsive as it removes a lot of bloat.

~~~
GekkePrutser
> I also built my own solution which takes a different approach:
> [https://github.com/leoncvlt/loconotion](https://github.com/leoncvlt/loconotion)
> \- it caches the Notion page as a static site - admittedly you lose the
> capability of "syncing" sites instantly but is also makes the site snappier
> and more responsive as it removes a lot of bloat.

Nice work! Another benefit you didn't mention is that it also makes it a lot
more secure - there's no injecting anything into static pages!

~~~
desireco42
Hey thanks for posting this. I didn't know people do this. I think idea to use
Notion for publishing is something that I would enjoy and will give it a try.

------
dzink
In addition to the already highlighted security vulnerabilities (you have to
stop any js injection capabilities), instant publish from your domain means
you are about to be swarmed with spammers. From SEO back-link builders, to
“download links” for viruses or illegal content, etc. If you enable that kind
of spam, your domain’s signal to noise ratio goes down substantially for
sharing legitimate content.

~~~
neongreen
Right — we'll solve that problem once we have it. Do you know how other
platforms (Wordpress, Notion, etc) handle it?

~~~
input_sh
The first step is to distance the domain of your project from the domain you
use for user-generated content.

Examples: github.com vs. github.io, wordpress.org vs. wordpress.com (note that
these are not subdomains, but distinct domains).

Doing so allows you to keep the two separate as far as SEO is concerned, so
that your main project isn't affected regardless of what users might upload.

Then it's about putting out the fires whenever they appear.

I'd also be careful about JavaScript, since a site hosted on example.com/a
will have the same origin as a site hosted on example.com/b (and therefore
access to cookies). This is where a separate subdomain for each user comes in
handy (so a.example.com vs b.example.com), which shouldn't be much of an issue
since DNS providers usually have an API that you can call, and DNS updates
should be fast when you're creating entries (as opposed to modifying existing
ones).

~~~
neongreen
Re/ JavaScript — as of yesterday, we serve everything in an iframe with a
different origin. This should make us more robust against screw-ups, and will
be essential when we start allowing script blocks in pages.

Re/ SEO — we might banish all pages without subdomains to smth like
`page.brick.do/...` as opposed to `brick.do/...`. Hopefully that will help
with SEO somewhat.

------
neongreen
Author here — me and a friend have been working on Brick for the past several
months.

It works like Notion as in "all your edits are instantly visible" — from
experience, this feels very different from blogging on Wordpress or making a
static site in a git repo.

I love static sites but I'm not going back to them. I can experiment much more
easily with Brick.

You can do something similar with Notion, but Notion is aimed at management or
personal knowledge-bases, and it shows. We have a different focus. E.g. Notion
is unlikely to ever have email subscriptions or ways to let people pay for
your writing, while we very well might in the future. Notion also doesn't
support custom domains out of the box, or custom CSS.

Try it out! Brick is free and has no ads. The only thing is that you need a
premium plan (less than $2/mo) for custom domains.

~~~
adiM
There is no info about pricing on the main page? I really don't want to sign
in to see the pricing info and details of other features.

~~~
neongreen
Added pricing!

------
mamurphy
I can't seem to read anything at all about pricing without signing up. I don't
want to share my Google/Github account with you before seeing pricing
information.

The "see Brick in action" video also doesn't play for me on Firefox.

~~~
jentist_retol
>share my Google/Github account

sign in with google/github doesnt expose any info that you wouldnt through a
traditional signup.

however, it's extremely frustrating that the pricing isn't up front or even
indicated that'll be an issue

~~~
lopsidedBrain
It does, in that it's much easier for me sign up with a throwaway username.
It's also part of the reason HN doesn't require these SSO integrations.

------
haberdasher
I can add a script tag via the CSS. I suppose it's not much of a security
risk. Might be wrong though:
[https://brick.do/c9878660-42ed-4b95-93b6-10a761488b5a](https://brick.do/c9878660-42ed-4b95-93b6-10a761488b5a)

~~~
arkadiyt
> I suppose it's not much of a security risk.

It wouldn't be much of a security risk if the authors had correctly isolated
user content into its own origin, which would have made this a self-xss only.
As it stands the app itself runs on the same origin, so this is a real XSS.

~~~
neongreen
Thanks! Isolating user content is the next task on the list — we discussed it
internally just yesterday. Unfortunately, we didn't think we'll need it /that/
soon.

Long-term, we definitely need more security-minded folks on the team.

Short-term, I will add an email address in the footer so that such issues can
at least be reported privately.

------
tiffanyh
Can we stop the requirement to use Gmail or Github just so I can use your
service?

I want to signup for this service, but I can’t - because I use a non-gmail
email service and use a non-github Git service.

What happened to thr “good old days” of just using my email address to signup
for a service?

~~~
neongreen
We want to have a classic sign-up option as well, sure — if only because it's
one less third-party point of vulnerability for users (will be relevant when
encrypted pages are there).

Unfortunately it's harder than Google/GitHub login, so we focused on other
bits for the MVP.

Is there any third-party service you /would/ use for auth? Perhaps it can be
enabled quickly.

~~~
tghw
An email/password login is not difficult in the least.

And, frankly, there is zero chance I'm going to host a site with a provider
who thinks it is.

~~~
neongreen
Eh. It's not "hard", it's "harder".

Evaluating mail delivery services and integrating with one; going through all
API handlers to check that they handle the extra "signed up but email still
unconfirmed" status the right way; handlers for resending email confirmations;
the password reset flow. A lot of papercuts.

Oh, and later on — having to debug email delivery issues, which always happen
eventually.

This is why adding another third-party auth option is much easier than adding
an email signup flow.

An alternative is the "modern" email flow where you just get a sign-in email
every single time you want to login, but that's meh. I'd rather have a proper
"classic" email signup flow.

All this said, I admit that email signup is one of the basic features, and
we're missing it. I want to have email signup too. I just don't think it's as
easy (or even /almost/ as easy) as third-party auth, and the rest is a
question of priorities.

------
dancek
I expected "free" to mean free software. It means freemium here.

EDIT: NOTE: I mean nothing negative by freemium: I just mean there are both
free and paid tiers. Not sure what the definition of freemium is.

~~~
neongreen
We have paid features, right.

I thought "freemium" nowadays referred more to practices like "we'll actively
make your experience worse and annoy you unless you pay", but now I think I
mistook that for "free-to-play" in the game industry. Alright then! It's
freemium.

~~~
dancek
I'm sorry if I've misunderstood the term. I mean absolutely no offense. I
understand freemium as proprietary service with both free and paid tiers.

------
isaacimagine
For some reason, the 'See brick in action' video won't play (Chromium, Android
10). Do you have another link to the video that might work?

~~~
isaacimagine
Other than that, the site looks pretty cool, and the idea is solid. I might
give it a try ;)

~~~
neongreen
Hey — the video should work now. Say if it still doesn't.

------
alphagrep12345
The only question I have is, If I make a personal website using this, will it
show up on google when people search for my name?

~~~
neongreen
Yes, all pages are indexable once Google gets ahold of the links (so if you
never share the link with anyone, it's /not/ going to end up in Google —
that's important).

I can find my Brick sites when I search for my name, though they are low-rank
at the moment.

------
edwinyzh
So looks mine is on the right track:)
[https://docxmanager.com](https://docxmanager.com)

------
throwawaysea
FYI on Firefox on iOS your site renders a bit oddly - the sign in button in
particular has text bottom aligned within its box.

~~~
brikwerk
I'm also observing this behaviour[1] on the latest version of Safari as well.

[1] [https://i.imgur.com/pDgXeJJ.png](https://i.imgur.com/pDgXeJJ.png)

------
sub7
Please take my advice if you want this thing to last.

Add payment/subscription support for writers. Take on substack directly.

~~~
neongreen
This is planned!

------
gverrilla
The website doesn't work here, which is pretty unusual. win 10 with latest
version of firefox. first time it wouldn't completely load (kept loading...),
CTRL+R and it loads completely, but video won't play. I'm curious and will be
back in a few days to check it out.

~~~
neongreen
> first time it wouldn't completely load

Hey! Can't reproduce on vanilla Firefox. Do you have any extensions enabled?
Try "Help -> Restart with Add-ons Disabled".

If it works (or if it doesn't even), can you write me at artyom@artyom.me and
tell about the results? Perhaps this can be fixed from our side.

About the video — it plays for me, but poorly. Will take a look.

------
rawoke083600
Nice site. With all the "focus" on micro-blogging and dislike for sites like
Medium.com (I agree by the way). It might be a good show of faith, to let the
users "export" their sites to MD or static HTML, if they want to host and have
a copy of their website.

~~~
neongreen
Exporting is on the roadmap. Currently you can `wget` your own site, but
that's not a great solution.

------
dafman
Not sure if it's just me, but playing the 'See Brick in action' video in
Firefox results in some strange behaviour:
[https://imgur.com/y0zJ0gB](https://imgur.com/y0zJ0gB)

~~~
neongreen
Replaced with a better-encoded video (VLC meh, Handbrake yay). Give it another
try.

~~~
dafman
Works perfectly now!

------
fareesh
Sign in button styling issue:

[https://drive.google.com/file/d/1ITZQHyGMdlK2DJ6KyDYMf8rfU67...](https://drive.google.com/file/d/1ITZQHyGMdlK2DJ6KyDYMf8rfU67lwHlH/view?usp=sharing)

~~~
neongreen
Thanks! Will be fixed.

------
vishnuharidas
I still want to see some example pages that are done in Brick. Also want to
see the pricing details before I sign up. Currently "Sign In" is the only
option available there.

~~~
neongreen
Gotcha.

Sample pages:

* [https://brick.do/55357459-86b9-4274-8ae4-85721987d73d](https://brick.do/55357459-86b9-4274-8ae4-85721987d73d) — a friend wrote a post about webs of meaning

* [https://brick.do/7c494481-f2e5-4a05-9a4d-19b22c76c729](https://brick.do/7c494481-f2e5-4a05-9a4d-19b22c76c729) — my own post detailing all my projects so far

* [https://brick.do/ca51f14c-e600-4afe-b99d-71e46fbd150b](https://brick.do/ca51f14c-e600-4afe-b99d-71e46fbd150b) — a technical post (Haskell-y) that I wrote

* [https://nathanabram.com/](https://nathanabram.com/) — this is how the default style looks like.

~~~
replwoacause
Should this worry me as a potential premium customer?
———————————————————————————-

I am Artyom Kazak, aka @availablegreen on Twitter. I was born in Belarus, a
small Eastern European country, and lived there till 18. ... I am turning 25
in October 2020, and that is when I plan to quit coding—as a birthday gift to
myself.

~~~
neongreen
The opposite!

Less time coding = more time running businesses.

I'm not writing any code at Brick either.

------
kkarpkkarp
neongreen, you should really test how it works on Firefox. For example sing in
with Github bricked (pun intended ;) ) my tab with your site, even refresh
button and address bar stopped working. I had to close it and open again to
see the dashboard.

Steps:

\- click on "get started"

\- I choose option to sing in with google.

\- it opens google api in separate modal window and this does not work if you
have Firefox extension to keep google in container

\- so I clicked github option, and authorized your app

\- after that, brick.do page has been frozen completely

~~~
neongreen
Thanks! Yeah, definitely need to test on Firefox (as well as Safari).

------
samblr
Looks like a really good idea. Will be trying this week.

------
chdaniel
It's Notion-like, but did you build the blocks editor from scratch or is there
any open-source option for Notion's block-based editor?

~~~
neongreen
We are not using a block editor (I think blocks are worse for writing than the
traditional model).

The only open-source block editor I know of is
[https://codex.so/editor](https://codex.so/editor).

~~~
pjgalbraith
Gutenberg is also open source and built by WordPress.

------
jonathanliu
Noob question: if I share a brick URL, can it be traced back to my github, or
my personal identity in any way by the people that I sent it to?

~~~
neongreen
It's designed not to leak any info like that. Anonymity is super important
([https://www.ribbonfarm.com/2020/01/23/being-your-selves-
iden...](https://www.ribbonfarm.com/2020/01/23/being-your-selves-identity-rd-
on-alt-twitter/) is one of the inspirations for what I want Brick to enable.)

If you find any way to circumvent that, we'll treat it with the same priority
as we treat security issues.

~~~
jonathanliu
Good to know, thanks!

Edit: Also thanks for sharing that RF article. Great read.

~~~
neongreen
That RF article pushed me towards making an anonymous Twitter acc, in
February, and it was the best decision of 2020 for me. Literally. Highest
quality therapy I've had in my life.

~~~
jonathanliu
Interesting. I don't have an anonymous Twitter, but I'll spout my experimental
ideas in private message groups with trusted friends.

Is there something that an anon Twitter could do that the latter couldn't?
Broader reach for ideas I suppose.

~~~
neongreen
Hard to say. I have friends too (ha) and I'm not afraid to talk to them about
my ideas, but alt Twitter still was different.

------
MattGaiser
Is there a reason these types of sites are trendy now? I am seeing a new note
taking/microblogging site every day now on Hacker News.

~~~
neongreen
Not a microblogging site — we are pretty heavily geared towards true "sites"
(places where you write long-form content, organize it, edit often, etc)
rather than tweeting into the void.

------
spyckie2
lots of questions / comments:

\- how do I publish? how do I see the published version?

\- what does the eye at the top right do?

\- Is all you can do right now just create pages and subpages of rich media?

Otherwise it's actually not a bad experience. Lots of bugs. not sure if I'll
stick around or publish an article on it yet, hard to tell right now.

~~~
neongreen
You don't publish! Every page you write is already available at the URL you
see in your address bar. This said, it's not indexable or findable until you
yourself share it somewhere. UUIDs are long enough to be unguessable.

The eye at the top switches the page into preview mode, which is currently
very similar to the edit mode. You'll notice the difference if you use Twitter
embeds.

All you can do right now is create pages and subpages of rich media, true.
Surprisingly, this was already enough for me to start writing much more than I
used to before Brick. But we have more features coming, of course
(collaborative editing, etc — see the bottom of the landing page).

------
replwoacause
Looks nice! Any plans to add syntax highlighting to the code blocks?

~~~
neongreen
Definitely!

Currently we prioritize feature requests from paying users, and nobody asked
for syntax highlighting yet. When somebody does, I think it'll appear pretty
soon.

------
therealmarv
No imprint, no privacy rules, no terms of service. Big no from me.

~~~
neongreen
Gotcha.

Do you have an example of a small service with excellent privacy/TOS rules? So
that I know what to treat as a high-quality exemplar when designing
privacy/TOS rules for Brick.

