HNHacker News
TopNewBestAskShowJobs

kennyfrc

144 karma · joined October 14, 2014

I operate a performance marketing agency & a marketing SaaS. Both bootstrapped.

monolithgrowth.com & jetdraftai.com

submissionscomments
kennyfrc··on Show HN: Cami.js – A no build, web component based reactive framework
I've mainly designed this for backend devs (i.e. rails, django people who just render plain html/css on the front-end), and we generally do HTML sanitization on the server side.

Example: https://api.rubyonrails.org/classes/ActionView/Helpers/Sanit...

kennyfrc··on Show HN: Cami.js – A no build, web component based reactive framework
Yes, the lib's great!

Unfortunately I haven't thought much yet about interoperability with other web components libraries like lit. I imagined folks would choose just one web component library over the other.

That said, you can initialize reactive properties(1), but property bindings won't work if there's a parent LitElement (as my reactive properties need to be called with either a .value method or an .update method for getting and setting respectively).

As of the moment, what's possible is interop with other cami elements using a store, and in a future version, i'm considering a richer event system for external javascript code to listen to.

---

(1) Initializing is possible with observerableAttr: https://github.com/kennyfrc/cami.js/blob/master/examples/008...

kennyfrc··on Show HN: Cami.js – A no build, web component based reactive framework
Thank you! That’s exactly the segment I was going for.
kennyfrc··on Show HN: Cami.js – A no build, web component based reactive framework
This is great feedback, thanks! I think there’s something around JSDoc types that can accommodate this. Something I’ll put as a milestone before v1.
kennyfrc··on Show HN: Cami.js – A no build, web component based reactive framework
Interesting! Many points are indeed similar. Apart from components, Cami also has immutability built-in and state management.
kennyfrc··on Show HN: Cami.js – A no build, web component based reactive framework
Thanks! Cami is technically a combination of both. I like the intuitiveness of observables so that’s used:

```

// define observable

this.count = this.observable(0);

// getting

this.count.value;

// setting

this.count.update(value => value + 1);

```

But it also has a redux-like pattern where you can dispatch actions and register reducers with far less ceremony:

```

// define store

const todoStore = createStore({ todos: [], });

// register reducer / producer

todoStore.register('add', (store, payload) => { store.todos.push(payload); });

// subscribe component to store

this.todos = this.subscribe(todoStore, 'todos');

// dispatch

this.dispatch("add", newTodo);

```

It looks like it’s mutating, but both the reducers and update() uses immer* under the hood, so we still respect immutability under the hood.

Cami supports redux devtools so you can use that for time-travel debugging too.

—-

* https://github.com/immerjs/immer

kennyfrc··on Show HN: Cami.js – A no build, web component based reactive framework
You can consider Cami as the light dom sibling of Lit (which uses shadow dom).

Cami loses out on slots & style encapsulation, but you can style Cami components with normal / global css like it’s part of the normal dom. And since there’s no shadow dom overhead, it’s more performant and there is no FOUC if you load CSS in <head>.

kennyfrc··on Show HN: Cami.js – A no build, web component based reactive framework
Yes, Cami uses fine-grained reactivity, so it’s a cousin of similar solutions like Solid signals, Svelte runes, Knockout / and MobX observables.

It doesn’t support SSR as it aims to be backend-agnostic (i.e. you can use python/ruby/haskell, and you can copy+paste the Cami module with no build step and you can start using it).

If you want SSR for the SEO benefits, I think it’s better to render the text-heavy parts as normal HTML for indexing with Google, and then mount the interactive parts with Cami / web components (i.e. “islands architecture”: https://www.patterns.dev/posts/islands-architecture)

kennyfrc··on Ask HN: How to do market research for product?
Yes, exactly!
kennyfrc··on Ask HN: How to do market research for product?
Yes, I have used this for feature roadmaps.

I don’t do what you mentioned (ie. look for paid apps with lots of ratings & a low score), I look for any app with at least one 1 star or 2 star reviews and I also look for any problem (doesn’t have to be related to an app) in reddit or any forum.

To be fair, it’s quite a numbers game to dig for useful problems or insights.

A related video about the process is Amy Hoy’s Sales Safari: https://youtu.be/67JVkG4dpj4

kennyfrc··on Ask HN: How to do market research for product?
If you want to create a B2B product, I would look for 1-star reviews in G2 and Capterra and see if you can solve these problems yourself.

You could also check what people are complaining about / asking help for in relevant subreddits and see if you can build a product around that.

kennyfrc··on Ask HN How do I learn marketing?
Marketer here. If I were to define the fundamental aspects of marketing, it would be as follows (I also have a note about feedback loops after):

1. Customer empathy: you need to know their pains, dreams, opinions, frustrations, and more. The first step of marketing is to always meet people where they are the most frustrated. Good resources for this are Amy Hoy’s Sales Safari [1], or Netnography [2]. I also like Sean D’Souzas Brain Audit [3]. Sean’s is the most accessible.

2. Copywriting: Once you can empathize with the persona / customer, you’ll need to learn how to relate your product or service to the person’s problems, needs, or dreams. There are many scammy resources out there, but the person who does his marketing in the most ethical way is again Sean D’souza [4]. Robert Bly is also good [5].

3. Distribution: once you solve for customer empathy and the right positioning (through compelling copywriting), the final step is to distribute your copies in various media. Weinberg’s Traction is a good starting point [6].

Some will recommend Russell Brunson, Sam Ovens, Gary Halbert, etc, but these folks are in the extreme end of marketing, and may not suit everyone. Their methods work for “get rich quick” online courses or coaching programs, but not for real products or services where you need to sustain a brand over time. The resources I mentioned are a good foundation for ethical marketing.

RE: Feedback loops - the fastest way to get a feedback loop is to start with content marketing. Your article must solve a tiny problem, then you distribute it. If you get good feedback, then make a longer article, then get feedback again. Then turn it into an ebook or small online tool, then get feedback. Keep increasing the size of your solution until you get to your desired goal (like a SaaS).

Another way to get a feedback loop is through ads: run multiple ads, compare their conversion rates, drop the worst ones, scale the best ones, then add more ad tests.

[1] https://stackingthebricks.com/video-sales-safari-in-action/

[2] https://www.amazon.com/Netnography-Essential-Qualitative-Soc...

[3] https://www.psychotactics.com/products/the-brain-audit-32-ma...

[4] https://www.psychotactics.com/home-study/copywriting-home-st...

[5] https://www.amazon.com/Copywriters-Handbook-Step-Step-Writin...

[6] https://www.amazon.com/Traction-Startup-Achieve-Explosive-Cu...

kennyfrc··on Ask HN: What would be your stack if you are building an MVP today?
I built a SaaS MVP in 2 months (nights and weekends) using Roda + HTMX + Alpine.js + Missing CSS + Postgres. I was quite happy with how moldable Roda is.

I tried rails in conjunction with roda in the first 2 weeks, but I felt far more productive with roda for my use case and stuck with it.

kennyfrc··on Ask HN: Books that teach programming by building a series of small projects?
Yes, and I would typically search for simple projects using keywords such as “micro”, “small”, “tiny”, or “pico”.

I would then try to re-implement the “getting started” code in the readme from scratch, like a little programming puzzle. If I can’t figure it out, I‘ll add in some debugger breakpoints, inspect the stack trace to understand how it works, then code the needed methods / classes as I go.

If you’re a ruby programmer, soveran’s work in github can be read in a day or two. I specifically like cuba (micro webframework) and mote (microtemplate).

kennyfrc··on Ask HN: Books that teach programming by building a series of small projects?
If you’re a pure beginner with zero programming experience, yes. If you’ve programmed a few scripts and have done a flask web app, his first book might be too easy.
kennyfrc··on Ask HN: Books that teach programming by building a series of small projects?
There’s quite a few:

- Zed Shaw’s Learn More Python the Hard Way[1]

- Brian Hogan’s Exercises for Programmers (best for beginners or for learning a new language)[2]

- Hal Fulton’s The Ruby Way[3]

- Chris Ferdinandi’s Vanilla JS Academy[4]

- Marc-Andre Cournoyer’s Great Code Club (it’s old, and the community doesn’t exist anymore, but i think he still maintains it)[5]

- A few python books from No Starch Press (notably those authored by Al Sweigart)

I learned the most as a beginner from Zed Shaw’s work, and from reading open source code.

Once you’re done with the initial “learn from tutorials” phase, there’s no better resource than reading open source code.

[1] https://www.amazon.com/Learn-More-Python-Hard-Way/dp/0134123...

[2] https://www.amazon.com/Exercises-Programmers-Challenges-Deve...

[3] https://www.amazon.com/Ruby-Way-Programming-Addison-Wesley-P...

[4] https://vanillajsacademy.com/

[5] https://www.greatcodeclub.com/

kennyfrc··on Show HN: Noctie – A chess AI that predicts your rating
This looks great! I’ve played a couple of games in the Open Sicilian and the French Tarrasch and there wasn’t a moment that I felt like I was playing against a computer. It plays some cheezy lines which I would expect from a lichess player.

On the user side - I think the review area would benefit from principle-based analysis similar to what is seen in chess.com. I am guessing that for it to happen, there needs to be a separate analysis engine that can detect positional motifs. I think chess.com did a decent job with that (better and more actionable than decodechess in my opinion).

On the tech side - I’m curious how this project differs from existing neural nets trained for lc0 such as bad gyal and maia?

kennyfrc··on Ask HN: Are majority of Facebook Ads visitors fake?
You get sucky traffic if you target Audience Network and Tablets.

If you're targeting to a developing country, then you need to then filter by profession (e.g. Software Engineers, CTO, etc.). Some countries (notably Vietnam, Philippines, and Bangladesh) have fake account farms where they sell fake likes or do shady stuff like click on their clients' competitors' ads to they can jack up their cost.

kennyfrc··on Ask HN: Are you interested in “reading” podcasts?
Not really. It's not exactly a "need" for me -- generally I can get insights off the podcast just by listening to it.

A close analogy would be a radio show -- no one over teh course of a few decades has ever paid for a transcribed radio show

kennyfrc··on How to Grow Your Leads Faster for SaaS Founders (4-Part Course)
hello! hope you folks find it helpful -- there's a pdf/epub as well in the course that you can download. growth hacker kit has been previously featured in product hunt (https://www.producthunt.com/tech/growth-hacker-kit)
kennyfrc··on Ask HN: Book Recommendations?
Ha! Just had that binge too...

... Here's what I like:

On the business end: - Badass by Kathy Sierra - Impossible to Inevitable by Aaron Ross - Traction by Gabriel Weinberg - Cold Calling Early Customers by Robert Graham - Learn or Die by Edward Hess

On "refining your thought process": - Mind for Numbers by Barbara Oakley - Racing Towards Excellence by Jan Sramek - Art of Learning by Josh Waitzkin - Case Interview Secrets by Victor Cheng (helps you think in a nice, structured way)

kennyfrc··on Ask HN: Monetizing Streaming Movie Search
It's a search service, so it's best to took at existing / similar services for inspiration like Google and Yelp.

So that means allocating placements to be used either for adsense / auction-style ad placements.

kennyfrc··on Ask HN: How are you tracking your tasks?
Same as you, I tried a bunch of various to-do list apps before but none of them worked out well for me.

Then I realized that the process of breaking down workload and personal life into small tasks does not fit well in a to-do list app context.

What worked for me was using something like BusyCal, which is a souped-up calendar. It was more aligned with the 'breaking down' process because I used the 'banner' feature to help me define my weekly goals then I proceed with tasks assigned with specific chunks of time.

I then track the planned vs actual time spent using letsfreckle.com, which is a time tracking tool.

For the more higher-level stuff (ie. monthly goals, yearly goals), I just keep them in Trello.

As for habits, I have a weekly review to check where I am vs monthly goals and I also use that review to allocate tasks into my calendar.

kennyfrc··on Ask HN: How do you track what you learn?
Apart from keeping track, a related problem I'm facing is making sure that I am able to re-implement what I'm doing.

So what I do is the following:

1. I break down what I've learned into steps or checklists

2. I then put these into Scrivener

3. Each topic that I've learned has it's own page

Here's a small example from my notes around PDF generation + attachments in Rails. This is just the overall picture -- each bullet point expands to another bunch of notes which has actual code details.

* build a mailer with mail(to:, from: content:)

* build a controller what delivers that content

* the controller should render a notice that says that the post has been successfully created <via a respond_to method>

* make sure that you configure the SMTP settings

* build a pdf creator (PrawnPDF::Base) => this initializes a PDF w/ some view_context

* configure a MIME type within config/initializers

* configure a controller that triggers a respond_to for this

* add a button that links to think Printable receipt

* save the PDF into some foldere

* insert a paperclip file type into the migration

* add this intot he user model

* go back to the PDF / order controller and then add a custom path to save the PDF (pdf.render file…)

* then save that file inside teh database & set it to the certificate

kennyfrc··on Ask HN: How to find freelance computer vision experts?
Finding experts is indeed tough -- I remember trawling around freelance boards with very bad results. It got a lot better when I discovered premium job boards + done for you services online.

Specifically for you, I think this might help: https://www.codementor.io/computer-vision-experts

In general, here's how I usually do my googling: - Initial search: "<keyword> + Done for You Service" || "<keyword> + Consultancy" - Second Search Run (if technical): "site:codementor.io <keyword>" - Third Search Run: Go to Clarity.fm and ask some of the folks there for referrals to someone

kennyfrc··on Singapore Prime Minister's C++ Sudoku Solver Source Code
got it -- i should've scanned first i guess. i actually appreciate it. thanks.