
Show HN: Goodreads for fanfiction built in Elixir/Phoenix - makeitrein
https://ficdb.com/
======
O1111OOO
Surprised this didn't make the front page. Very well implemented, quick access
to the actual content (books), sourced from various sites, terrific filtering.

fyi: I know lots of folks love their dark theme. Sadly, I'm not one of them.
When I look at a dark theme for too long and have to focus on brighter areas
(room, another site, outdoors), I see terrible spots and after-images.

(posted the above in the suggestion area[0], afterwards it took me to a login
page. Not sure if suggestion went through)

[0] [https://ficdb.com/suggestions](https://ficdb.com/suggestions)

~~~
makeitrein
Thx for the compliments!

Re: light theme - added to trello! low prio, but I grok why you want an
alternative

------
makeitrein
Hey HN - here's my side project from the past three months. I'm a closeted
fanfic reader, and I wanted a better way of figuring out what fanfics are
worth my time. Also, happily funemployed at the moment, so I wanted to stretch
my coding brain and learn some Elixir/Phoenix before it fully atrophied.

I've open sourced the code here:
[https://gitlab.com/makeitrein/ficdb_veil](https://gitlab.com/makeitrein/ficdb_veil)

I decided to give Elixir/Phoenix a go in building this - here are some
thoughts...

\- Pipe syntax and with macro makes for very grokable code... with macro
especially is the cleanest pattern I've come across to date for handling the
"happy" path with a clearly defined escape chute.

\- [https://unpoly.com/](https://unpoly.com/) was a great tool for speeding up
my site by prefetching data on hover of any link and replacing only specific
content on a page - highly recommended for making your Rails/Phoneix app more
SPA-like.

\- Ecto is the one true ORM. Doesn't try to redo SQL, lets you compose queries
in an incredibly straightforward manner, and provides these things called
changesets to help validate data and insert associations. Two thumbs up,
addresses a lot of my problems with ActiveRecord and Node ORMs. Check out
[https://gitlab.com/makeitrein/ficdb_veil/blob/master/lib/fic...](https://gitlab.com/makeitrein/ficdb_veil/blob/master/lib/ficdb/directory/fanfic.ex)
for an example of my fanfic schema + filtration queries

\- I still have no idea how to use OTP/GenServer - Phoenix is an abstraction
above the Erlang fundamentals, and I feel like this will bite me down the line

\- I used [https://gigalixir.com/](https://gigalixir.com/) to handle
deployments - it's Heroku for Elixir... great service, but it does cost
minimum $35/month for a basic site, which is painful for a side project... if
I knew more dev ops, I would try to wing this myself on AWS

\- There's this underlying tension of whether to switch out the front-end for
React or not. Phoenix templates are super speedy and play nicely with the rest
of the ecosystem, but parts of the code base have now turned into brittle
Jquery soup. Don't know how I'm going to handle this going forward.

\- Elixir community is strong and welcoming, but library selection is still a
fraction of the Javascript/Rails community. That being said, the libraries are
usually of a higher quality then what you'd expect.

\---

Ficdb is nowhere close to world domination, but it's cool to see 400+ users
submit 800+ fanfics and leave just as many reviews in the last two weeks. I'd
like to continue promoting this project on the side, see where it goes. Let me
know what you think!

~~~
_lol
Hey thanks for sharing! What resources did you use to grok elixir/phoenix?

~~~
makeitrein
[https://phoenixframework.org/](https://phoenixframework.org/) guide is pretty
great [https://elixircasts.io/](https://elixircasts.io/) is solid

Couple good books out there, but I don't have the patience for em!

